The present invention, in some embodiments thereof, relates to a method and system for verifying application configuration of an application and, more particularly, but not exclusively, for identifying broken dependencies between source code segments of an application.
It is well known in the art that mobile applications client side has static design that amongst others contains screen layout, data model and logic. Any change in this static design has to be decided during the development time. There is an emerging demand in mobile applications to change the behavior of the applications, their functionality and appearance in a dynamic manner. This demand emerges from the dynamic environment, in which the mobile application is being deployed, the differences in users' behavior, needs and characteristics and other parameters that require different configurations of the mobile application.
The increasing number of mobile applications with dynamic application requirements raises the need to allow the application to be adapted to specific dynamic requirement after it has been released from the design environment.
An exemplary application that demonstrates the need for dynamic configuration of a mobile application is a shopping application. In such application, there might be a requirement to change the color of a price tag temporarily during specific sale or deal period. Another example of a requirement for dynamic design of a shopping mobile application might be the requirement to offer special offers and lower prices to premium customers.
Another exemplary application that demonstrates the need for dynamic configuration of a mobile application is an enterprise application. In such application, the layout and content of the application may need to be changed according to an employee's role.
In another exemplary application, a banking application may need to have the ability to adapt its configuration according to a user's identity. Additionally, the network type the user is using could define the content presented to him.
Yet another example is a military enterprise application. In such environment, some secret modules are not supposed to be exposed to a client at any time during the application's lifecycle. However, for selective configuration, these modules may need to be loaded at runtime, and be executed in a secured container.